iT邦幫忙

2023 iThome 鐵人賽

DAY 5
0
SideProject30

python基礎及數據科學之應用系列 第 5

python基礎及數據科學之應用day 5[Python基礎應用(OOP簡單介紹)]

  • 分享至 

  • xImage
  •  

大家好,今天是第五日,今天要介紹是python的class和物件導向程式設計(OOP)

在Python中,類別(class)是用於建立物件的藍圖或範本。它定義了該類別的物件將具有的屬性(資料)和方法(函數)。

Python 中的 OOP 是指在 Python 程式語言中實作物件導向程式設計原理。物件導向程式設計是一種程式設計範例,允許圍繞物件(類別的實例)組織程式碼。Python 作為多範式語言,完全支援 OOP。

類別(class)簡單介紹

封裝(encapsulation)

class new_variable():
    x=5
    
print(new_variable.x)

執行結果:

>>5

Self 是一種習慣,而不是Python 關鍵字。Self 是實例方法中的一個參數,使用者可以使用其他參數名稱來取代它。但建議使用 self,因為它增加了程式碼的可讀性,而且也是一種很好的程式設計習慣。

下面一個用self例子:

class myclass:
  x=10
  def say(self):
    return(myclass.x)
m=myclass()
print(m.say())

執行結果:

>>10

私有變數(private variable)

私有變數在程式中用於訪問控制。為了在 Python 中實現私有變數,我們將在變數名前使用雙下劃線 (__)

下面一個用私有變數例子:

class account():
  __password=123456
print(account.__password)

執行結果(有error正常):

>>Traceback (most recent call last):
  File "/home/runner/ithome/second.py", line 3, in <module>
    print(account.__password)
AttributeError: type object 'account' has no attribute '__password'

如何輸出password:

class account():
  __password=123456
  
  def printpassword(self):
    print(self.__password)
    
carson_account=account()
carson_account.printpassword()

執行結果:

>>123456

建構式(constructor) 用於初始化物件的狀態。建構函數的任務是在建立類別的物件時對類別的資料成員進行初始化(賦值)。一旦類別的物件被實例化(Initialization),它就會運作。該方法對於執行您想要對物件執行的任何初始化非常有用。在python中是用__init__作為建構式。

下列一個簡單建構式的例子

class person:
  def __init__(self,name,age,school): #用這個__init__來先創建之後要用的變數
    self.name=name
    self.school=school
    self.age=age

  def whoareyou(self):
    return (self.name)
n=person("carson",14,"pyc") #輸入變數
print(n.whoareyou())

執行結果:

>>carson

實體方法方法是 Python 類別中最常見的方法類型。如果您有兩個對象,每個對像都是從類別創建的,那麼它們每個都可能具有不同的屬性。它們可能有不同價值等。

下面一個用實體方法例子:

class animal():
  def __init__(self,name:str,height,species): 
    self.name=name
    self.height=height
    self.species=species
    
  def say(self):
    if self.species=="cat":
      print("meow")
    elif self.species=="dog":
      print("woof")
    else:
      print("You are not cat or dog")

cat=animal("issac","23","cat") #用aniamal創建cat實體
Dog=animal("Tom","50","dog") #用aniamal創建Dog實體
human=animal("Carson","170","human") #用aniamal創建human實體

cat.say() #執行self的功能
Dog.say() #執行self的功能
human.say() #執行self的功能

執行結果:

>>meow
>>woof
>>You are not cat or dog

繼承(inheritance)

繼承允許我們定義一個類,該類別繼承另一個類別的所有方法和屬性。
父類別是被繼承的類。
子類別是從另一個父類別繼承的類。
下面一個用繼承方法例子:

class Animal: #Animal是父類別
    def __init__(self, name):
        self.name = name

    def speak(self):
        pass

class Dog(Animal): #Dog是子類別
    def speak(self):
        return "Woof!"

class Cat(Animal): #Cat是子類別
    def speak(self):
        return "Meow!"

class Cow(Animal): #Cow是子類別
    def speak(self):
        return "Moo!"


dog = Dog("Buddy")
cat = Cat("Whiskers")
cow = Cow("Bessie")

print(dog.name + ": " + dog.speak())  
print(cat.name + ": " + cat.speak()) 
print(cow.name + ": " + cow.speak())  

執行結果:

>>Buddy: Woof!
Whiskers: Meow!
Bessie: Moo!

這天就先介介紹OOP,如果覺得我的文章對你有幫助或有更好的建議,可以追蹤我和不妨在留言區提出,明天再見吧。
/images/emoticon/emoticon17.gif
reference:
https://www.delftstack.com/zh-tw/howto/python/python-private-variables/


上一篇
python基礎及數據科學之應用day 4[Python基礎應用(for loop,while,def,if statement簡單介紹)]
下一篇
python基礎及數據科學之應用day 6[Python基礎應用(Requests模組提取網上內容及圖片)]
系列文
python基礎及數據科學之應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言